import request from '../../utils/user-group-chat/request.js'

/**
 * 删除指定ID的群聊消息
 * @param {Number} messageId - 消息ID
 * @returns {Promise} 操作结果状态码
 */
export function deleteMessage(messageId) {
  return request({
    url: 'userGroupChat/deleteMessage',
    method: 'post',
    params: { messageId }
  })
}

/**
 * 获取指定班级的历史消息列表
 * @param {Number} classId - 班级ID
 * @returns {Promise} 消息列表
 */
export function getMessages(classId) {
  return request({
    url: 'userGroupChat/getMessages',
    method: 'post',
    params: { classId }
  })
}

/**
 * 上传群聊文件
 * @param {Object} fileInfo - 文件信息对象
 * @param {File} file - 实际文件
 * @returns {Promise} 操作结果
 */
export function uploadFile(formData) {
  return request({
    url: 'userGroupChat/uploadFile',
    method: 'post',
    data: formData
  })
}

/**
 * 删除群聊文件
 * @param {Number} fileId - 文件ID
 * @returns {Promise} 操作结果
 */
export function deleteFile(fileId) {
  return request({
    url: 'userGroupChat/deleteFile',
    method: 'post',
    params: { fileId }
  })
}

/**
 * 获取班级文件列表
 * @param {Number} classId - 班级ID
 * @returns {Promise} 文件列表
 */
export function getFiles(classId) {
  return request({
    url: 'userGroupChat/getFiles',
    method: 'post',
    params: { classId }
  })
}

/**
 * 创建群聊通知
 * @param {Object} notification - 通知对象
 * @returns {Promise} 操作结果
 */
export function createNotification(notification) {
  return request({
    url: 'userGroupChat/createNotification',
    method: 'post',
    data: notification
  })
}

/**
 * 获取班级通知列表
 * @param {Number} classId - 班级ID
 * @returns {Promise} 通知列表
 */
export function getNotifications(classId) {
  return request({
    url: 'userGroupChat/getNotifications',
    method: 'post',
    params: { classId }
  })
}

/**
 * 标记通知为已读
 * @param {Number} notificationId - 通知ID
 * @returns {Promise} 操作结果
 */
export function markNotificationReadCount(notificationId) {
  return request({
    url: 'userGroupChat/markNotificationReadCount',
    method: 'post',
    params: { notificationId }
  })
}

/**
 * 更新通知置顶状态
 * @param {Number} notificationId - 通知ID
 * @param {Number} isPinned - 1-置顶，0-取消
 * @returns {Promise} 操作结果
 */
export function updateNotificationIsPinned(notificationId, isPinned) {
  return request({
    url: 'userGroupChat/updateNotificationIsPinned',
    method: 'post',
    params: { notificationId, isPinned }
  })
}

export function getClassMembers(classId) {
    return request({
        url: 'userGroupChat/getClassMembers',
        method: 'post',
        params: {classId}
    })
}

export function deleteNotification(notificationId) {
    return request({
        url: 'userGroupChat/deleteNotification',
        method: 'post',
        params: {notificationId}
    })
}